Network architectures consist of layers of protocol of different scope. In general, scope increases with higher layers. The traditional approach to implementing these architectures is to pass incoming PDUs (packets), through stages of processing in each layer. This can entail data copies and task switching and is very inefficient. All implementations attempt to minimize this overhead to the degree they can give the unique nature of the protocols but with limited success. Even with hardware assist, this has led to expensive and complex custom silicon.
A PDU for any layer consists of Protocol-Control-Information (PCI, sometimes referred to as the “header”) and user-data. PCI is what the protocol must process; user-data is not understood by the protocol and delivered to the layer above. The layer above has the same structure. The user-data of the layer below is the PCI and user-data of the layer above. Hence we tend to talk about (N)-PCI and (N−1)- or (N+1)-PCI.
In traditional networks, data transfer consists of multiple layers with addresses, CRCs, fragmentation/reassembly, ordering, retransmission, flow control, etc. usually done over 3 or 4 layers of different scope sometimes more. In a router, PDUs must go up through these layers and then back down through different ones. Because all of the protocols in every layer are different, this is complex and expensive.
In multiplexing/demultiplexing situations, each layer combines flows coming down through the layers into fewer flows out the bottom. Flows coming in are demultiplexed into more flows. In a router, a small number of incoming flows are demultiplexed at each layer into different classes of queues that may be handled differently. At the “top” of the router, PDUs are switched to be sent out on different lines than they came in on. So the PDUs are multiplexed on again through a different set of queues. In traditional architectures, there is no way to avoid “sorting” the PDUs through this web of queues.
In most network architectures, it is difficult to change the address that PDUs (packets) are being sent to without losing some packets or in some architectures, such as the Internet, destroying connections. The ability to change addresses is critical for the support of mobility and the efficiency of routing. As a corollary, the task of completely renumbering a network (changing all of the addresses used) is a complex, expensive and disruptive affair, which is to be avoided.